const {user,validateUser}=require('../../modle/user')
// 引入密码加密模块
const bcrypt=require('bcryptjs');
const login =async (req,res)=>{
    console.log(req.fields);
    // 接受请求参数
    const {email,password}=req.body;
    // 表单验证
    if(email.trim().length==0||password.trim().length==0){
        return res.status(400).render('admin/error',{msg:"邮箱或密码错误"})
    }
    // 根据邮箱地址查询用户信息 如果不存在则返回空
    let User=await user.findOne({email:email});
    if(User){
        // 将客户端传递过来的密码和用户信息中的密码进行比对
        let isValid=await bcrypt.compare(password,User.password);
        console.log(isValid);
        if(isValid){
            // 将用户名存储在请求对象中
            req.session.username=User.username;
            req.session.role=User.role;
            console.log(req.session.username);

            // 以下方式，可通过模板访问到
            req.app.locals.userInfo=User;
            // req.app.locals.userInfo=User.role;
            // 判断用户身份，重定向到后台或前台
            if(User.role=='admin'){
                res.redirect('/admin/user');
            }else {
                res.redirect('/home');
            }
        }else {
            return res.status(400).render('admin/error',{msg:"邮箱或密码错误"})
        }
    }else {
        return res.status(400).render('admin/error',{msg:"邮箱或密码错误"})
    }
}
module.exports= login
